这是我参与「第五届青训营」伴学笔记创作活动的第 6 天
本堂课重点内容
- HTTP 协议的简单介绍
- HTTP 协议的报文结构
详细知识点介绍
HTTP 全称超文本传输协议(Hyper Text Transfer Protocol),是一个基于 TCP 协议的无状态应用层协议。
HTTP 发展历史
HTTP/0.9
只有 GET 类型的请求
只能响应 HTML 文档
HTTP/1.0
增加了 Header
增加了状态码
支持了多种文档类型
HTTP/1.1 (常见)
连接复用
提供了缓存支持
支持内容协商
HTTP/2
二进制协议
支持 Header 压缩
增加了服务器推送(Server Push)
HTTP/3
- 基于 QUIC(udp)协议
常见的 HTTP Methods
请求类型 | 说明 |
---|---|
GET | 请求一个指定的资源。使用 GET 的请求一般用于获取数据 |
POST | 将实体提交到指定资源,通常导致服务器上的状态变化或副作用 |
PUT | 用于请求有效载荷替换目标资源 |
DELETE | 用于删除指定的资源 |
HEAD | 请求一个与 GET 请求的响应相同的响应,但没有响应体 |
OPTIONS | 预检请求,用于描述目标资源的通信选项 |
其中最常见的是 GET
请求和 POST
请求, PUT
DELETE
常见于各类 RESTful API 中。而 OPTIONS
请求被称为预检请求,倘若我们尝试为前面的几个请求类型增加自定义 Header,浏览器会默认向服务器发出一个 OPTIONS 请求,用于判断服务器能否接收 / 处理该 header。
常见 HTTP 状态码
1xx - 指示信息
2xx - 请求成功
3xx - 重定向操作
4xx - 客户端错误
5xx - 服务端错误
200
正常响应301
永久重定向302
临时重定向401
未授权403
请求被拒绝404
请求资源不存在500
服务器错误504
网关错误
RESTful API
他是一种 API 设计风格。
- 每一个 URL 代表一种资源
- 客户端和服务端之间,传递这种资源的某种表现层。
- 客户端通过 HTTP method,对服务端资源进行操作,实现 "表现层状态转化"
常见请求头
- Accept:接受类型
- Content-Type:客户端发送出去实体内容的类型
- Cache-Control:指定请求和响应遵循的缓存机制。
- Cookie:有 cookie 会自动带上
常用响应头
- Set-Cookie:设置和页面关联的 Cookie
- Content-Type:服务端
HTTP2
帧:http2 最小通信单位,每个帧都包含帧头
消息:与逻辑请求或响应消息对应的完整的一系列帧。
数据流:已建立的连接内的双向字节流,可以承载一条或多条消息。
交错发送,接收方重组织。
HTTP2 连接是永久的,而且仅需要每个来源一个连接。
流控制:阻止发送方向接收方发送大量数据的机制。
服务器有主动推送能力,可以提前推送静态资源。
HTTPS
HTTPS = HTTP + SSL
对称加密:加密和解密都是用同一个密钥
非对称加密:加密和解密都需要使用两个不同的密钥:公钥和私钥。
鉴权
- Session+Cookie
- JWT
WebSocket
- 浏览器与服务器进行全双工通讯的网络技术
- 实时性高
其他
QUIC:HTTP3 的新特性
实践练习例子
https://www.w3schools.cn/html/exercise.asp
课后个人总结
本次课程主要介绍了 HTTP 协议的基本知识,以及 HTTP 的发展历史,以及常见的请求方法和状态码,以及 RESTful API。另外还介绍了 HTTPS 和 WebSocket 以及 QUIC 等新特性。学完本节课,我对 HTTP 协议有了更深入的理解,掌握了其中的常见请求头和响应头,以及常用的状态码,并且了解了 HTTP2,HTTPS,WebSocket,以及 QUIC 等新特性。